home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / phagexsources.lha / source / IffBitz.s < prev    next >
Text File  |  1993-08-20  |  838b  |  52 lines

  1. ConvertIFF    Lea    AnimGFXData(pc),a1
  2.     Move.l    (a1)+,d0
  3.     Cmp.l    #'FORM',d0
  4.     Beq    FoundIFF
  5.     Rts
  6.  
  7. FoundIFF    Move.l    (a1)+,d1
  8. NewForm    Move.l    (a1)+,d0
  9.     Cmp.l    #"ANIM",d0
  10.     Beq    GetAnim
  11.     Cmp.l    #"ILBM",d0
  12.     Beq    GetAnim
  13.     Rts
  14.     
  15. GetAnim    Move.l    (a1)+,d0
  16.     Move.l    (a1)+,d1
  17.     Cmp.l    #"FORM",d0
  18.     Beq    NewForm
  19.     Cmp.l    #"BODY",d0
  20.     Beq    DecrunchIFF
  21. EndHunk    Add.l    d1,a1
  22.     Btst    #0,d1
  23.     Beq    SkipTest
  24.     Addq.l    #1,a1
  25. SkipTest    Lea    AnimGFXData(pc),a5
  26.     Add.l    #EndFile-AnimGFXData,a5
  27.     Cmp.l    a5,a1
  28.     Blt    GetAnim
  29. ExitConv    Rts
  30.  
  31. DecrunchIFF    Move.l    ScreenBase1(pc),a3
  32.     Move.l    d1,d7
  33.     Move.l    a1,a2
  34.     Move.l    a2,a4
  35.     Add.l    d1,a4
  36. DecLoop    Moveq    #0,d0
  37.     Move.b    (a2)+,d0
  38.     Bmi    GetByte
  39. DataLoop    Move.b    (a2)+,(a3)+
  40.     Dbf    d0,DataLoop
  41.     Bra    CheckLast
  42. GetByte    Cmp.b    #-128,d0
  43.     Beq    CheckLast
  44.     Neg.b    d0
  45.     Move.b    (a2)+,d2
  46. ByteLoop    Move.b    d2,(a3)+
  47.     Dbf    d0,ByteLoop
  48. CheckLast    Cmpa.l    a2,a4
  49.     Bgt    DecLoop
  50.     Bra    EndHunk
  51.     
  52.